The use of computers, especially personal computers (PCs) is widespread. The computing power of the PC, whether coupled to a network or operating as a stand-alone device, has increased significantly as new computer designs move into production. Central processing units have become faster and more complex with each new generation of PC. Memory chips have also increased in both capacity and speed. Other elements, such as disk drives and compact disk read-only memory drives are common on PCs.
While the speed of central processing units and memories have increased, there are limitations to the speed at which a disk drive can transfer data. That is, reading data from the disk drive, or writing data to the disk drive is slow relative to the processing speed of the central processing unit and memory. Before data can be transferred to or from the disk drive, the central processing unit must send commands to the disk drive and wait for the disk drive to locate the appropriate physical position on the storage media at which to read data or write data. The disk drive generates an interrupt when it is ready for the data transfer. The interrupt must be processed by the central processing unit to actually transfer data. In a computer system with multiple disk drives, only one disk drive can be active at a time. In other words, only one disk drive can be actively locating the appropriate location on the storage media and generating interrupts. Therefore, it can be appreciated that there is a significant need for a system that will allow software programs to access multiple disk drives for independent disk-related operations. The present invention provides this and other advantages as will be apparent from the following detailed description and accompanying figures.